package helpers.grupo.jerarquia;

import server.Singleton;
import helpers.*;
import cliente.pagina.*;
import comun.constantes.*;
import server.aula.ControlAula;
import utils.UtilsGenerarHtml;
import persistencia.dominio.*;
import java.io.File;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class HelperPerfil extends Helper {

  public HelperPerfil(Pagina pagina){
    super(pagina);
  }


  public String getHTMLPerfil() throws Exception{
	  String html = "";
	  html += this.getHTMLFormulario("perfil","index.jsp?","Perfil y datos del integrante");
	  html += this.getHTMLDatosPersonales();
	
	  html += "\t    </fieldset>\n";
	  html += this.getHTMLBotones();
	  html += "\t  </form>\n";
	  return html;
  }

  public String getHTMLPerfilDatoParticular() throws Exception{
	  String html = "";
	  html += this.getHTMLFormulario("perfilParticular","grupo_perfil_integrante.jsp?",this.pagina.getParameter(PARAMETROS_PAGINAS.ACCION));
	  html += this.getHTMLDatoParticular(this.pagina.getParameter(PARAMETROS_PAGINAS.ACCION));
	 
	  html += "\t    </fieldset>\n";
	  html += this.getHTMLBotones();
	  html += "\t  </form>\n";
	  return html;
  }

  private String getHTMLFormulario(String nombre,String url,String legend){
	  String html = "";
	  html += "\n\t<div id=\"perfilIntegrantesGrupos\">\n";
	  if(url.compareTo("index.jsp?")==0)
		  html += "\t  <form method=\"post\" name=\""+nombre+"\" action=\""+url+""+this.getHTMLReferenciasParametrosParaIndex()+"\">\n";
	  html += "\t  <form method=\"post\" name=\""+nombre+"\" action=\""+url+""+this.getHTMLReferenciasParametrosBasico()+"\">\n";
      html += "\t    <fieldset>\n";
      html += "\t\t<legend>"+legend+"</legend>\n";
	  return html;
  }

  private String getHTMLDatosPersonales()throws Exception{
	  String html = "";
	  boolean permisoCorreo = false;
	  ControlAula controlAula = new ControlAula(persistencia);
	  Participante participante = controlAula.getParticipante(this.pagina.getIdAula(),Long.valueOf(this.pagina.getParameter(PARAMETROS_PAGINAS.ID_PERSONA)));
	  String tipoUsuario = null;
	     try {
	       tipoUsuario = participante.getTipoUsuario().getNombre();
	     }
	     catch (Exception ex) {
	       ex.printStackTrace();
	       tipoUsuario = "";
	     }

	  String mailPersona = "";
	  permisoCorreo = this.obtenerPermisoRecurso(RECURSOS.CORREO,tipoUsuario,((Boolean)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.INTERCOMISION))).compareTo(TIPO_PERMISOS.NINGUNO)!=0;
	  if (permisoCorreo)
		  mailPersona = participante.getPersona().getLoginMail()+server.Singleton.DOMINIO_MAIL_EAD;
	  else
	      mailPersona = participante.getPersona().getEmail();
	  
	  File foto = new File(Singleton.HOME_DIR+"archivos/fotos/"+participante.getPersona().getId()+".jpg");
	  //File foto = new File(Singleton.HOME_DIR_RELATIVO_FOTOS_ALUMNOS+participante.getPersona().getId()+".jpg");
	  if(foto.exists())
	  	  html += "\t\t<td><img align=\"right\" src=\""+Singleton.HOME_DIR_RELATIVO_FOTOS_ALUMNOS+participante.getPersona().getId()+".jpg?"+System.currentTimeMillis()+"\" width=100 height=100 border=0 /></td>";
	  else
	   	  html += "\t\t<td><img align=\"right\" src=\""+Singleton.HOME_DIR_RELATIVO_FOTOS_ALUMNOS+"defecto"+".jpg?"+System.currentTimeMillis()+"\" width=100 height=100 border=0 />";
	    	         
      //Le agrego el ?+System.currentTimeMillis() para que cambie el url y fuerce al server
      //a refrescar la foto. Sino no se refesca luego del cambio hasta que el usuario cierre el navegador
      //o refresque la pagina voluntariamente.
      html += "\t\t<h3>Datos Personales</h3>\n";
	  html += "\t\t<ul>\n";
	  html += "\t\t  <li><label>Nombre y Apellido: "+participante.getPersona().getNombreYApellido()+"</label></li>\n";
	  html += "\t\t  <li><label>E-mail: "+mailPersona+"</label></li>\n";
	  html += "\t\t<br>\n";
	  html += "\t\t</ul>\n";
	  html += this.getHTMLReferenciasSobreParticipante(participante);
	  html += "\t\t<br>\n";
	  return html;
  }

  private String getHTMLReferenciasSobreParticipante(Participante participante){
	  String html = "";
	  html += "\t\t  <h3>Datos particulares de "+participante.getPersona().getNombre()+" sobre la plataforma</h3>\n";
	  html += "\t\t    <ul>\n";
	  html += "\t\t    <br>\n";
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLImagenReferenciaConMetodoJS(this.pagina.getPathRaiz()+"imagenes/tilde_ok.gif",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_CURSOS_Y_HERRAMIENTA_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLReferenciaConMetodoJS("Acceso a cursos y herramientas que utiliza","",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_CURSOS_Y_HERRAMIENTA_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	 
	  
	  html += "\t\t    <br>\n";
	  html += "\t\t    <br>\n";
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLImagenReferenciaConMetodoJS(this.pagina.getPathRaiz()+"imagenes/tilde_ok.gif",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_ACTIVIDADES_PARTICIPA_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLReferenciaConMetodoJS("Actividades en las que participa","",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_ACTIVIDADES_PARTICIPA_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  

      html += "\t\t    <br>\n";
      html += "\t\t    <br>\n";
      
      html += "\t\t "+UtilsGenerarHtml.getHTMLImagenReferenciaConMetodoJS(this.pagina.getPathRaiz()+"imagenes/tilde_ok.gif",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_TRABAJOS_Y_ACTIVIDADES_SUBIDOS_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLReferenciaConMetodoJS("Trabajos y actividades subidos al espacio del grupo","",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_TRABAJOS_Y_ACTIVIDADES_SUBIDOS_GRUPO+"')\"",
			  			"Ver perfil","12","12");
      

      html += "\t\t    <br>\n";
      html += "\t\t    <br>\n";
      
      html += "\t\t "+UtilsGenerarHtml.getHTMLImagenReferenciaConMetodoJS(this.pagina.getPathRaiz()+"imagenes/tilde_ok.gif",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_RESULTADOS_DE_TRABAJOS_Y_ACTIVIDADES_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLReferenciaConMetodoJS("Resultados de trabajos y actividades entregadas","",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_RESULTADOS_DE_TRABAJOS_Y_ACTIVIDADES_GRUPO+"')\"",
			  			"Ver perfil","12","12");
      

      html += "\t\t    <br>\n";
      html += "\t\t    <br>\n";
      
      html += "\t\t "+UtilsGenerarHtml.getHTMLImagenReferenciaConMetodoJS(this.pagina.getPathRaiz()+"imagenes/tilde_ok.gif",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_DOCUMENTOS_SUBIDOS_AL_ESPACIO_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLReferenciaConMetodoJS("Documentos subidos al espacio del grupo","",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_DOCUMENTOS_SUBIDOS_AL_ESPACIO_GRUPO+"')\"",
			  			"Ver perfil","12","12");
      

      html += "\t\t    <br>\n";
      html += "\t\t    <br>\n";
      
      html += "\t\t "+UtilsGenerarHtml.getHTMLImagenReferenciaConMetodoJS(this.pagina.getPathRaiz()+"imagenes/tilde_ok.gif",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_UTILIZACIONES_DEL_FORO_GRUPO+"')\"",
			  			"Ver perfil","12","12");
	  
	  html += "\t\t "+UtilsGenerarHtml.getHTMLReferenciaConMetodoJS("Utilizaci&oacute;n del foro","",
			  "onclick=\"alertaPaginaEnConstruccion('"+this.pagina.getPathPaginas()+"perfil_dato_particular.jsp?"+this.getHTMLReferenciasParametrosBasico()+
			  			"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+participante.getPersona().getId()+
			  			"&"+PARAMETROS_PAGINAS.ACCION+"="+ACCIONES_A_REALIZAR.PERFIL_UTILIZACIONES_DEL_FORO_GRUPO+"')\"",
			  			"Ver perfil","12","12");
      

      html += "\t\t    </ul>\n";
      return html;
  }

  protected String getHTMLBotones(){
		String html = "";
		html += "\t\t<div id=\"botonesNJ\" align=\"center\">\n";
		html += "<br>";
		//Entre los dos bloques de codigo que estan comentados debemos manejar el tema de volver; no me gusta como
		//queda, me suena a parche; peeeeeeero a esta epoca y en este estado cuesta pensar....
		boolean intercomision = ((Boolean)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.INTERCOMISION)).booleanValue();
		String estado = ((String)this.pagina.getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS));
	  	String donde = "";
		String url = "";
		String dondeVolver = this.pagina.getParameter(PARAMETROS_PAGINAS.DONDE_VOLVER);
		if(dondeVolver != null && dondeVolver.compareTo(DONDE_VOLVER.INDEX_GRUPO)==0)
			  url = "index";
		else if(dondeVolver != null && dondeVolver.compareTo(DONDE_VOLVER.SUMARIO_GRUPO)==0){
			  if(intercomision) url = "../../materia_grupo_sumario";
			  else url = "../comision_grupo_sumario";
		}else{
			if(intercomision){
				  url = "../../materia_grupo";
				  if(estado.compareTo(ESTADO_GRUPOS.BORRADOR)==0)
					  donde = "_borradores";
				  else if(estado.compareTo(ESTADO_GRUPOS.FINALIZADO)==0)
					  donde = "_finalizados";
				  else if(estado.compareTo(ESTADO_GRUPOS.ELIMINADO)==0)
					  donde = "_eliminados";
			}else{
				  url = "../comision_grupo";
				  if(estado.compareTo(ESTADO_GRUPOS.BORRADOR)==0)
					  donde = "_borradores";
				  else if(estado.compareTo(ESTADO_GRUPOS.FINALIZADO)==0)
					  donde = "_finalizados";
				  else if(estado.compareTo(ESTADO_GRUPOS.ELIMINADO)==0)
					  donde = "_eliminados";
			}		
		}
		html+= "\t\t<input name=\""+PARAMETROS_PAGINAS.NOMBRE_BOTONES+"\" type=\"button\" class=\"boton\" value=\""+ACCIONES_A_REALIZAR.VOLVER+"\"" +
		       " onClick=\"realizaSubmit('"+url+donde+".jsp?"+this.getHTMLReferenciasParametrosBasico()+"',this.form)\"/>\n";
		html += "\t\t\t</div>\n";
		return html;
}

  private String getHTMLDatoParticular(String consulta){
	  String html = "";
	  html += "\t\t  <h1>HACER LOS DISTINTOS METODOS DE CONSULTA</h1>";
	  if(consulta.compareTo(ACCIONES_A_REALIZAR.PERFIL_ACTIVIDADES_PARTICIPA_GRUPO)==0){
		  /*Hacer el metodo de consulta a la base de datos y mostrar en tabla*/
		  html += "\t\t    <h3>"+consulta+"</h3>";
	  }else if(consulta.compareTo(ACCIONES_A_REALIZAR.PERFIL_CURSOS_Y_HERRAMIENTA_GRUPO)==0){
		  /*Hacer el metodo de consulta a la base de datos y mostrar en tabla*/
		  html += "\t\t    <h3>"+consulta+"</h3>";
	  }else if(consulta.compareTo(ACCIONES_A_REALIZAR.PERFIL_DOCUMENTOS_SUBIDOS_AL_ESPACIO_GRUPO)==0){
		  /*Hacer el metodo de consulta a la base de datos y mostrar en tabla*/
		  html += "\t\t    <h3>"+consulta+"</h3>";
	  }else if(consulta.compareTo(ACCIONES_A_REALIZAR.PERFIL_RESULTADOS_DE_TRABAJOS_Y_ACTIVIDADES_GRUPO)==0){
		  /*Hacer el metodo de consulta a la base de datos y mostrar en tabla*/
		  html += "\t\t    <h3>"+consulta+"</h3>";
	  }else if(consulta.compareTo(ACCIONES_A_REALIZAR.PERFIL_TRABAJOS_Y_ACTIVIDADES_SUBIDOS_GRUPO)==0){
		  /*Hacer el metodo de consulta a la base de datos y mostrar en tabla*/
		  html += "\t\t    <h3>"+consulta+"</h3>";
	  }else if(consulta.compareTo(ACCIONES_A_REALIZAR.PERFIL_UTILIZACIONES_DEL_FORO_GRUPO)==0){
		  /*Hacer el metodo de consulta a la base de datos y mostrar en tabla*/
		  html += "\t\t    <h3>"+consulta+"</h3>";
	  }
	  return html;
  }

  private String getHTMLReferenciasParametrosParaIndex(){
	  String html = PARAMETROS_PAGINAS.ID_GRUPO+"="+this.pagina.getIdGrupo()+
	  	"&"+PARAMETROS_PAGINAS.ID_AULA+"="+this.pagina.getIdAula()+
		"&"+PARAMETROS_PAGINAS.ID_ORGANIZACION+"="+((PaginaCurso)this.pagina).getIdOrganizacion()+
		"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+Long.valueOf(this.pagina.getParameter(PARAMETROS_PAGINAS.ID_PERSONA))+
		"&"+PARAMETROS_PAGINAS.REFRESH+"="+new Long((new java.util.Date()).getTime());
	  if(this.pagina.getIdComision()!=null)
		  html += "&"+PARAMETROS_PAGINAS.ID_COMISION+"="+this.pagina.getIdComision();
	  return html;
  }

  private String getHTMLReferenciasParametrosBasico(){
	  String html = PARAMETROS_PAGINAS.ID_GRUPO+"="+this.pagina.getIdGrupo()+
	  	"&"+PARAMETROS_PAGINAS.ID_AULA+"="+this.pagina.getIdAula()+
		"&"+PARAMETROS_PAGINAS.ID_ORGANIZACION+"="+((PaginaCurso)this.pagina).getIdOrganizacion()+
		"&"+PARAMETROS_PAGINAS.ID_PERSONA+"="+Long.valueOf(this.pagina.getParameter(PARAMETROS_PAGINAS.ID_PERSONA))+
		"&"+PARAMETROS_PAGINAS.REFRESH+"="+new Long((new java.util.Date()).getTime());
	  if(this.pagina.getIdComision()!=null)
		  html += "&"+PARAMETROS_PAGINAS.ID_COMISION+"="+this.pagina.getIdComision();
	  return html;
  }
}

